<?php
/**
 * <https://y.st./>
 * Copyright © 2019 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'<{title}>' => 'Let&apos;s see them call me a &quot;Sir&quot; now.',
	'takedown' => '2017-11-01',
	'<{body}>' => <<<END
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2019/08/02.jpg" alt="A rack of bedtime clothing for women" class="framed-centred-image" width="800" height="480"/>
<section id="dreams">
	<h2>Dream journal</h2>
	<p>
		I dreamed I&apos;d taken a trip to the mall with Vanessa and out grandmother via car.
		They went on ahead, and I was still at the car getting ready to head in.
		Some rapscallion broke in through the driver&apos;s seat, which was odd because I still had the passenger door wide open, and threw my laptop up on the roof.
		They started asking if I was &quot;in farmer mode&quot; and telling me we should take a joy ride.
		First, I threatened them.
		I told them that if they touched my laptop again, I&apos;d literally stab them.
		Then I explained how a lot of people actually mean &quot;figuratively&quot; when they say &quot;literally&quot;, but that I meant that I would actually drive a knife into their body.
		All my coursework was on that laptop, and I wasn&apos;t going to let them lose if on me.
		While I wasn&apos;t being figurative, as I made very clear, I was still making empty threats.
		I wasn&apos;t going to stab anyone.
		But they got in the driver seat and started moving the car, and I told them we needed to put it back.
		I brought them into the mall with me to keep them away from the car so they wouldn&apos;t steal it.
		I woke up before I got a chance to catch up to my my grandmother and tell her about it though.
	</p>
</section>
<section id="diet">
	<h2>Dietary intake</h2>
	<p>
		For breakfast, I had 75 grams of cereal and 50 grams of soy milk.
		For lunch, I had 200 grams of potatoes, flax seeds, and onions baked in soy milk.
		For dinner, I brought 400 grams of the same.
		It was so bland though, that I couldn&apos;t bring myself to eat much of it, and ended up eating an order of breadsticks (without the butter and Parmesan) instead.
	</p>
</section>
<section id="drudgery">
	<h2>Drudgery</h2>
	<p>
		My discussion post for the day:
	</p>
	<blockquote>
		<p>
			It&apos;s not just Android users that expect everything to always look the same across applications.
			Take my mother, for example.
			She was convinced that all Apple products are terrible.
			She let her friends talk her into getting an iPhone as her first smartphone though.
			Now, she&apos;s gotten use to how the thing looks and feels, and is convinced that no other mobile device is acceptable.
			She doesn&apos;t even know what the alternatives are like, yet she somehow &quot;knows&quot; they&apos;re not good.
			And why not?
			Because the alternatives aren&apos;t what she&apos;s used to.
			They&apos;re different, and therefore bad.
			She even got mad at me when I opted not to get an iPhone when I lived with her, and instead get something more flexible and Android-based, even though I paid for it myself and she was planning to have to pay for the more-expensive, more locked-down iPhone!
			My mother has always taken everything to the extreme, but aside from that, she&apos;s not alone.
			People get stuck in ruts, and seek to have everything look and feel the same as what they&apos;re already used to.
			They don&apos;t like change, and oddly enough, they often don&apos;t even like for other people to choose a different user experience.
			They want bland.
			They want sameness.
			They don&apos;t want to try doing things some other way.
		</p>
		<p>
			The textbook talked a lot about the various predefined widgets you can use, but didn&apos;t explain why you should use them instead of defining your own.
			Part of it is that it helps you develop your application to use the same style as every other application on the platform, which as discussed above, users tend to prefer.
			This is something that the Udacity videos brought up (Udacity, n.d.).
			But I think there&apos;s another good reason as well: these widgets have already been defined!
			Why reinvent old wheels, when you can just import those wheels into your project?
			If there&apos;s nothing to gain by defining competing interface elements that&apos;ll be specific to your own application, why do it?
			You&apos;ll save development hours by using the built-in widgets, not to mention that you&apos;ll keep your application size down, which users will appreciate.
		</p>
		<p>
			I can&apos;t think of any practical applications that would need to define custom controls.
			I certainly can&apos;t come up with any specific applications, seeing as I haven&apos;t had a working mobile in over a year, and back when I did, my use case was very simple and I mostly used the email client, music player, and Web browser.
			The only application repository I had was F-Droid, which is more limited than most people have, so I didn&apos;t really see a whole lot of applications either.
			I can make guesses as to types of applications that might need custom controls though.
			For example, some games might need to.
			For example, in the F-Droid repository, you can find a game called <a href="https://f-droid.org/en/packages/com.uberspot.a2048/">2048</a>.
			It&apos;s a port of the popular Web browser game by the same name.
			For anyone unfamiliar, you have a grid of tiles, and you swipe the screen in a direction to move all the tiles in that direction, merging any like tiles that run into one another.
			These swipe controls probably aren&apos;t custom.
			But imagine a similar tile-based game in which you touch and drag a single tile.
			Or even imagine something such as checkers or chess, in which you need to drag individual pieces.
			You might need custom controls for that.
			Outside of games though, you should probably stick to the predefined controls.
		</p>
		<div class="APA_references">
			<h3>References:</h3>
			<p>
				Udacity.
				(n.d.).
				<a href="https://www.udacity.com/course/new-android-fundamentals--ud851#">Developing Android Apps | Udacity</a>.
				Retrieved from <code>https://www.udacity.com/course/new-android-fundamentals--ud851#</code>
			</p>
		</div>
	</blockquote>
	<p>
		I tried to get started on the main assignment for the week, and instead spent about an hour debugging a problem I didn&apos;t cause.
		I wrote in the course forum about it to warn other students, but also to hopefully get the professor to instruct us as to what to do about it:
	</p>
	<blockquote>
		<p>
			I&apos;m not sure what the deal is, but if you include a reference to <code>THREE.OrbitControls()</code> in your code, it prevents the rendering.
			I don&apos;t know if it was broken last week, as I&apos;d deleted it from my code near the beginning of the week, but it no longer works as of yesterday.
			I found two students&apos; work I graded didn&apos;t render, so I gave them zeros, only to find that when I added it back to the code this week because we once again need mouse-based controls, my own renderings broke.
			After about an hour of trying to figgure out what was going on, I checked my archived assignment submissions and found that not a single one of them was rendering any more, even though they all rendered at the time I submitted them.
			However, last week&apos;s work was rendering just fine.
			The difference being that my submission last week didn&apos;t include <code>THREE.OrbitControls()</code>.
			Something is broken in this script that wasn&apos;t broken before.
		</p>
		<p>
			Anyway, I&apos;ve gone back and regraded the two students&apos; work after removing references to <code>THREE.OrbitControls()</code> (which wasn&apos;t actually used for the assignment submissions&apos; functionality anyway) and found that one of the two submissions rendered.
			If you&apos;re grading and finding that someone&apos;s submission isn&apos;t rendering, comment out the line creating the <code>THREE.OrbitControls()</code> object and all lines referencing the variable crated on that line, and try rendering again.
			It&apos;s not the students&apos; fault that this code stopped working, so you shouldn&apos;t grade them poorly for it.
		</p>
		<p>
			Also though, we require these mouse controls for this week&apos;s work.
			I&apos;m not sure what we can do about that.
			I&apos;m going to see if I can find a working copy of the script to substitute in tomorrow, but I make no promises that I&apos;ll find one for you.
			Or if someone that knows JavaScript better than me could figure out why the script is breaking now, that&apos;d be awesome.
			The only error message I&apos;m getting is &quot;Access to restricted URI denied.&quot;, which shows up in the Firebug console.
			However, it&apos;s rather unhelpful, and doesn&apos;t even specify what $a[URI] is being blocked.
			I&apos;ve tried every $a[URI] included from the main project skeleton, and those all seem to load in a Web browser, though I guess I can&apos;t say for sure they&apos;re not being blocked by JavaScript, and there may be other $a[URI]s loaded by these scripts, one of which may be getting blocked.
			Likely, the bad $a[URI] is included in the <a href="https://cdn.rawgit.com/mrdoob/three.js/master/examples/js/controls/OrbitControls.js"><code>THREE.OrbitControls()</code> script</a>, but again, I&apos;m bad at JavaScript and don&apos;t know what I&apos;m looking at.
		</p>
	</blockquote>
</section>
<section id="Minetest">
	<h2>Minetest</h2>
	<img src="/img/CC_BY-SA_3.0/minetest.net./weblog/2019/08/02.png" alt="Nearly there" class="framed-centred-image" width="1024" height="600"/>
	<p>
		I&apos;ve built out the bridge to the edge of the rails.
		I need to harvest more wood before I can go any further, but I&apos;m almost to World&apos;s Navel!
	</p>
</section>
<section id="nightgowns">
	<h2>Nightgowns</h2>
	<p>
		I tend to do my laundry after work on the night before my days off.
		Ever since I told the boss I needed Thursday nights off to go to $a[EUGLUG] meetings, that&apos;s typically been Tuesday night, though sometimes Monday night.
		If there&apos;s still daylight when I get off work, I wait until later.
		I figure I can get all my laundry done at once, and if it&apos;s dark, I don&apos;t really need any formal clothing.
		I can just wear a robe, because there might be people out and about between my apartment and the laundry room.
		And there often are.
		With it being late and dark, I thought it didn&apos;t really matter what I looked like.
		I&apos;ve been just wearing what I&apos;ve got.
		I don&apos;t remember where my robes came from; they might have even been ones I had when I lived with Summer, though I know at least the main one I wore back them became too badly torn and I had to throw it out.
		I guess I was wrong though.
		It does matter what I look like, even in the late hours.
	</p>
	<p>
		Last Tuesday, one of the neighbours caught me and called me something I couldn&apos;t quite make out.
		It sounded like &quot;Sir East&quot;.
		I asked what they&apos;d said, but as usual, people don&apos;t tend to just repeat when asked to, and instead repeat only part of it or try to clarify.
		Anyway, the &quot;Sir&quot; part was right; they clarified that.
		Apparently, my one robe looks like a smoke jacket, and they equate smoke jackets with people you&apos;d refer to as &quot;Sir&quot;.
		As for &quot;East&quot;, they were probably butchering my surname, though honestly, I don&apos;t care too much if you butcher my surname as long as you don&apos;t try to use the wye as both a consonant <strong>*and*</strong> a vowel.
		There&apos;s only one wye, so thinking it&apos;s filling both roles is just asinine.
		If you have any sense of how English works, you can see that as there are no other vowels, the wye <strong>*must*</strong> be a vowel, and my name doesn&apos;t contain the consonant wye sound.
		But anyway, I&apos;ve gone off on a tangent.
		The point is that the robe apparently makes me look like a &quot;Sir&quot;, which (ignoring the it-makes-me-look-like-a-smoker thing, considering they think it looks like a smoke jacket) I take to mean it makes me look like a man.
	</p>
	<p>
		That very night, I made plans to buy a better robe.
		I didn&apos;t really choose this one.
		It was either one given to me by my mother or it was one I found in the laundry room on the giveaway table.
		I&apos;ve been using it out of utility, not because I like its style.
		Today was my first day of work since then, so I headed in early so I could look through the second-hand shop next door.
		Unfortunately, they didn&apos;t have any robes that weren&apos;t sheer.
		The whole point is that I&apos;m trying to cover up!
		But they did have a couple of nightgowns my size.
		One of them&apos;s black and has white lace on it.
		The other is hot pink with a pattern of high heel shoes.
		Let&apos;s see them call me a &quot;Sir&quot; when I&apos;m wearing one of those!
	</p>
	<p>
		They do reveal the top of my chest slightly though.
		Once I have that $a[laser] in hand, I guess my chest hair&apos;s the first thing I&apos;ve got to get to work removing, though I can shave in the mean time too.
		I was already thinking my chest might be the best thing to target first, so I guess this just cements it.
	</p>
</section>
END
);
